// use anyhow::Result;
// use futures_util::{SinkExt, StreamExt};
// use tokio::net::TcpListener;
// use tokio_tungstenite::accept_async;
// use tokio_tungstenite::tungstenite::Message;
// use crate::download::{download, DownloadTask};
//
// pub async fn websocket_setup() -> Result<()> {
//     let listener = TcpListener::bind("127.0.0.1:19527").await?;
//
//     loop {
//         let (mut stream, _) = listener.accept().await?;
//         tokio::spawn(async move {
//             tokio::spawn(handle_connection(stream));
//         });
//     }
// }
//
// async fn handle_connection(stream: tokio::net::TcpStream) {
//     let ws_stream = accept_async(stream)
//         .await
//         .expect("Error during WebSocket handshake");
//
//     println!("New WebSocket connection established!");
//
//     let (mut ws_sender, mut ws_receiver) = ws_stream.split();
//
//     // 处理接收到的消息
//     while let Some(Ok(msg)) = ws_receiver.next().await {
//         match msg {
//             Message::Text(text) => {
//                 let text = text.to_string();
//                 if validate(&text) {
//                     println!("Received message: {}", text);
//
//                     let params = DownloadTask{
//                         url: text.clone(),
//                         output: "D:\\Desktop\\Everything-1.4.1.1026.x64-Setup.exe".to_string(),
//                         num_chunks: 6
//                     };
//
//                     println!("download params:: {:?}", params);
//                     // download(params).await
//                 }
//                 // 回应客户端
//                 if let Err(e) = ws_sender
//                     .send(Message::Text(format!("Echo: {}", text).into()))
//                     .await
//                 {
//                     eprintln!("Error sending message: {}", e);
//                 }
//             }
//             Message::Binary(data) => {
//                 println!("Received binary data: {:?}", data);
//             }
//             _ => {
//                 println!("Other message type received");
//             }
//         }
//     }
//
//     println!("WebSocket connection closed.");
// }
//
// pub fn validate(url: &str) -> bool {
//     url.starts_with("http")
// }
